package com.qf.student.dao.impl;

import com.qf.student.dao.IEmpDao;
import com.qf.student.entity.Emp;
import com.qf.student.util.DBUtils;

import java.util.Date;
import java.util.List;

/**
 * @version1.0
 * @auth dmh
 */
public class EmpDaoImpl implements IEmpDao {
    /**
     * 底层增加员工数据的方法
     * @param emp
     * @return
     */
    @Override
    public int insert(Emp emp) {
        String sql = "insert into emp(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,deptno) values(?,?,?,?,?,?,?,?)";
        return DBUtils.write(sql, emp.getEMPNO(),emp.getENAME(),emp.getJOB(), emp.getMGR(),emp.getHIREDATE(),emp.getSAL(),emp.getCOMM(),emp.getDeptno());
    }

    /**
     * 底层通过查找id来修改员工数据的方法
     * @param emp
     * @return
     */
    @Override
    public int updateById(Emp emp) {
        String sql = "update emp set ENAME = ?,JOB = ?,MGR = ?,HIREDATE = ?,SAL = ?,COMM = ?,deptno = ? where EMPNO = ?";
        return DBUtils.write(sql, emp.getENAME(),emp.getJOB(), emp.getMGR(),emp.getHIREDATE(),emp.getSAL(),emp.getCOMM(),emp.getDeptno(),emp.getEMPNO());
    }

    /**
     * 底层通过id来查询指定员工数据的方法
     * @param EMPNO
     * @return
     */
    @Override
    public Emp selectById(Integer EMPNO) {
        String sql = "select * from emp where EMPNO = ?";
        return DBUtils.readOne(sql, Emp.class, EMPNO);
    }

    /**
     * 底层根据id来删除员工数据的方法
     * @param EMPNO
     * @return
     */
    @Override
    public int deleteById(Integer EMPNO) {
        String sql = "delete from emp where EMPNO = ?";
        return DBUtils.write(sql, EMPNO);
    }

    /**
     * 底层查询员工列表的方法
     * @return
     */
    @Override
    public List<Emp> selectList() {
        String sql = "select * from emp";
        return DBUtils.readList(sql, Emp.class);
    }

    @Override
    public Emp selectByName(String ENAME) {
        String sql = "select * from emp where ENAME = ?";
        return DBUtils.readOne(sql, Emp.class, ENAME);
    }
}
